1. Field of the Invention
The present invention generally relates to reading data from memory and more specifically to a system and method for coalescing sequential fetch requests for a data class that are interleaved with fetch requests for other data classes.
2. Description of the Related Art
Current data processing includes systems and methods developed to read data from memory efficiently. Typically, a cache is used to store data that is read from memory in portions sized based on the memory interface. A cache is particularly well-suited to improve memory access efficiency when series of small memory reads (fetches) are in sequence. When the first fetch is completed a portion of the following fetch in the sequence is available in the cache since reading the small first fetch also read some of the adjacent memory locations that are needed for a part of the second fetch. A cache is not a good solution when the data for the second fetch is not present in memory when the data for the first fetch is read. In that case, the cache stores the incorrect data for the part of the second fetch. In systems where the memory writes can be snooped, the cache entry can be updated or invalidated when a corresponding memory write occurs in order to maintain cache coherency. However, when the memory writes cannot be snooped it is not possible to determine whether or not the data for the part of the second fetch that is stored in the cache is correct.
Accordingly, what is needed in the art is a system and method for performing a sequence of fetches from memory when a cache cannot be used to improve memory access efficiency.